﻿using System;
using System.Collections;

namespace CollectionApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            ArrayList a1 = new ArrayList();

            Console.WriteLine("Adding some numbers:");

            a1.Add(45);
            a1.Add(78);
            a1.Add(33);
            a1.Add(56);
            a1.Add(12);
            a1.Add(23);
            a1.Add(9);

            Console.WriteLine("Capacity: {0}", a1.Capacity);
            Console.WriteLine("Count: {0}", a1.Count);

            Console.Write("Content: ");
            foreach (int i in a1)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
            Console.Write("Sorted Content: ");
            a1.Sort();
            foreach (int i in a1)
            {
                Console.Write(i + " ");
            }
            Console.WriteLine();
            Console.ReadKey();
        }
    }
}

/*
 
动态数组（ArrayList）代表了可被单独索引的对象的有序集合。它基本上可以替代一个数组。但是，与数组不同的是，您可以使用索引在指定的位置添加和移除项目，动态数组会自动重新调整它的大小。它也允许在列表中进行动态内存分配、增加、搜索、排序各项。

常用方法：Add、AddRange、Clear、Contains、GetRange、IndexOf、Insert、InsertRange、Remove、RemoveAt，RemoveRange、Reverse、SetRange、Sort、TrimToSize。

 */